
// 引入接口函数
import { reqGetBannerListData, reqGetCategoryListData, reqGetFloorsListData} from '@/api'

// 用于存储项目中的数据 进行统一管理
const state = {
  // 三级导航数据
  GetgoryListData: [],
  
  // 轮播图数据
  bannerList: [],
  
  // 楼层数据
  floorsList:[]
}
// 用于发送异步请求
const actions = {
  // 1. 获取三级导航数据
  async getCategoryListData(context) {
    const result = await reqGetCategoryListData()
    // console.log('store',result)
    if (result.code === 200) {
      context.commit('SAVE_CATEGORY_LLIST_DATA',result.data)
    } else {
      console.log(result.message)
    }
  },

  // 2. 获取轮播图的数据
  async getBannerListData({commit}) {
    const result = await reqGetBannerListData()
    if (result.code === 200) {
      commit('SAVA_BANNER_LIST_DATA',result.data)
    } else {
      console.log(result.message)
    }
  },

  // 3. 获取楼层
  async getFloorsListData({commit}) {
    const result = await reqGetFloorsListData()
    if (result.code === 200) {
      commit('SAVE_FLOORS_LIST_DATA',result.data)
    }
  }
}
// 用于对state数据的操作 添加或是修改 只有mutations才能够对state中的数据操作
const mutations = {
  //1. 存储三级导航数据的方法
  SAVE_CATEGORY_LLIST_DATA(state,aaa) {
    state.GetgoryListData = aaa
  },

  // 2. 存储轮播图数据的方法
  SAVA_BANNER_LIST_DATA(state,bannerList) {
    state.bannerList = bannerList
  },

  // 3. 存储楼层数据的方法
  SAVE_FLOORS_LIST_DATA(state,floorsList) {
    state.floorsList = floorsList
  }
}
// 相当于是Vuex中的计算属性
const getters = {};

// 导出当前模块的对象
export default {
  namespaced: true, // 开启命名空间 以备在使用的时候，能够区分是哪个模块中的数据或是方法
  state,
  actions,
  mutations,
  getters
}